const Mock = require("mockjs"); // 导入依赖模块
const fs = require('fs')
const path = require('path')
const json5 = require('json5')
// Mock.setup({
//     timeout: 1000
// })
function getJsonFile(filepath) {
    var json = fs.readFileSync(path.resolve(__dirname, filepath), 'utf-8')
    return json5.parse(json)
}
// 返回一个函数
module.exports = (middlewares, devServer) => {
    if (!devServer) {
        throw new Error("webpack-dev-server is not defined");
    }
    devServer.app.post('/login', (req, res) => {
        // console.log(req);
        let { username, password } = req.query;
        if (username === 'user' && password == "12345") {
            res.json({
                id: 1000,
                token: "asdffefefrr123"
            })
        } else if (username == "admin" && password == "12345") {
            res.json({
                id: 1001,
                token: 'asdffefefrr123'
            })
        } else {
            res.json({
                message: '登录400'
            })
        }

    })
    devServer.app.get("/routes", (req, res) => {
        if (req.query.id == 1000) {
            res.json({
                data: [
                    {
                        path: "aboutView",
                        name: "aboutView",
                        component: "/AboutView"
                    },
                    {
                        path: "testView",
                        name: "testView",
                        component: "/TestView"
                    }
                ]
            })
        } else if (req.query.id == 1001) {
            res.json({
                data: [
                    {
                        path: "myTree",
                        name: "myTree",
                        component: "/MyTree"
                    },
                    {
                        path: "myDynamicItemForm",
                        name: "myDynamicItemForm",
                        component: "/MyDynamicItemForm"
                    }
                ]
            })
        }
    })
    middlewares.unshift({
        name: "first-in-array",
        // `path` is optional
        path: "/getEchartByDevServe",
        middleware: (req, res) => {
            let json = getJsonFile('./echartData.txt')

            res.send(Mock.mock(json))
        },
    }, {
        name: "two-in-array",
        // `path` is optional
        path: "/getTreeDataByDevServe",
        middleware: (req, res) => {
            let json = getJsonFile('./treeData2.txt')

            res.send(json)
        },
    }
        //  {
        //     name: "login",
        //     // `path` is optional
        //     path: "/login",
        //     middleware: (req, res) => {
        //         let { username, password } = req.body;
        //         if (username === 'user' && password == "12345") {
        //             res.json({
        //                 id: 1000,
        //                 token: "asdffefefrr123"
        //             })
        //         } else if (username == "admin" && password == "12345") {
        //             res.json({
        //                 id: 1001,
        //                 token: 'asdffefefrr123'
        //             })
        //         } else {
        //             res.json({
        //                 message: '登录400'
        //             })
        //         }

        //     },
        // },
        // {
        //     name: 'routes',
        //     path: '/routes',
        //     middlewares: (req, res) => {
        //         // const { id } = req
        //         if (req.query.id == 1000) {
        //             res.json({
        //                 data: [
        //                     {
        //                         path: "/page1",
        //                         name: "page1",
        //                         component: "/page1.vue"
        //                     },
        //                     {
        //                         path: "/page2",
        //                         name: "page2",
        //                         component: "/page2.vue"
        //                     }
        //                 ]
        //             })
        //         } else if (req.query.id == 1001) {
        //             res.json({
        //                 data: [
        //                     {
        //                         path: "/page1",
        //                         name: "page1",
        //                         component: "/page1.vue"
        //                     },
        //                     {
        //                         path: "/page2",
        //                         name: "page2",
        //                         component: "/page2.vue"
        //                     },
        //                     {
        //                         path: "/page3",
        //                         name: "page3",
        //                         component: "/page3.vue"
        //                     },
        //                     {
        //                         path: "/page4",
        //                         name: "page4",
        //                         component: "/page4.vue"
        //                     },
        //                 ]
        //             })
        //         }
        //     }
        // }
    );

    return middlewares;
}

